跳到主要内容

350 两个数组的交集 II

https://leetcode.cn/leetbook/read/top-interview-questions-easy/x2y0c2/

https://leetcode.cn/problems/intersection-of-two-arrays-ii/description/

cost: 9m43s

class Solution {
public:
vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
if (nums1.size() > nums2.size()) {
return this->intersect(nums2, nums1);
}
unordered_map<int,int> m;
for (const int v : nums1) {
m[v]++;
}
vector<int> r = {};
for (const int v : nums2) {
if (m.count(v)) {
m[v]--;
r.push_back(v);
if (m[v] == 0) {
m.erase(v);
}
}
}
return r;
}
};
  • 时间复杂度:O(n1+n2)
  • 空间复杂度:O(min(n1, n2))